package edu.qd.learn.day903;

import java.util.Arrays;
import java.util.Stack;

/**
 * 问题
 *
 * @author 布衣
 */
public class Learn03 {

    /**
     * 解决数组反转问题
     * @param arr
     */
    public void question02(int[] arr) {
        //临界
        if (arr.length == 0) {
            throw new RuntimeException("请正确传递参数!!!");
        }

        // 8 = 8 / 2
        for (int i = 0, len = arr.length - 1; i < (arr.length>>1) - i; i++) {
            arr[i] = arr[len - i] + arr[i];
            arr[len - i] = arr[i] - arr[len - i];
            arr[i] = arr[i] - arr[len - i];
        }
    }

    /**
     * 我们先用老外写好的栈， 后面我们再来自我封装这个栈
     */
    public boolean question02(String str){
        if(str.isEmpty()){
            throw new RuntimeException("请正确传递参数");
        }
        if(str.length() % 2 != 0){
            return false;
        }

        //栈
        Stack<Character> cs = new Stack<>();
        for(int i = 0;i < str.length();i++){
            if (cs.isEmpty()) {
                cs.push(str.charAt(i));
            }else{
//                if(cs.peek() 判断 和str.charAt(i)是否为一组){
//                    cs.pop();
//                }else{
//                    cs.push(str.charAt(i));
//                }
            }
        }
        return cs.isEmpty();
    }

    public static void main(String[] args) {
        Learn03 l = new Learn03();
        int[] arr = new int[]{1, 2, 3, 4, 5,6};
        System.out.println("原数组 : " + Arrays.toString(arr));
        l.question02(arr);
        System.out.println("新数组 :" + Arrays.toString(arr));
    }

}
